char s1[4]="12",*ptr=s1;,ptr指向数组s1的

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:55:46
char s1[4]="12",*ptr=s1;,ptr指向数组s1的 ,而*(ptr+1)的值是

由于数组名代表的就是数组的首元素的地址,作为char型指针的ptr被初始化为s1,所以ptr就指向了数组s1的首元素1,ptr的值就是&s1[0],即数组s1首元素s1[0]的地址。那么ptr+1就指向了数组s1的下一个元素,也就是第二个元素2,ptr+1的值就是&s1[1],即数组s1的第二个元素的地址,*(ptr+1)对这个地址反引用,就取出这个地址里面的值,就是2

楼主要多看看你们的课本上关于指针的操作,取地址,反引用,数组名这些部分。

2

char s1[4]="12";
上式等价于 char s1[4]={'1','2','\0','\0'};
*ptr=s1;
ptr指向s1的首地址,即&s1[0],也可表示为&ptr[0]
*(ptr+1) 即为*(&ptr[1]),为*(&s1[1]), 值为2

顶楼上几位

字符2

也就是s1数组的第二位的值